package cn.com.idmy.base;

public interface Sortable extends Comparable<Sortable> {
    Long getSort();

    default int compareTo(Sortable o) {
        var thisSort = getSort();
        var thatSort = o.getSort();

        // 如果两个都是 null，认为相等
        if (thisSort == null && thatSort == null) {
            return 0;
        }

        // null 值排在最后
        if (thisSort == null) {
            return 1;
        }
        if (thatSort == null) {
            return -1;
        }

        // 正常比较
        return thisSort.compareTo(thatSort);
    }
}
